/**
 *
 */
package com.naiterui.ehp.bs.im.network.protocl;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import org.springframework.data.annotation.Id;

import java.io.Serializable;

/**
 * @author He Qiang
 * @since 1.0.0
 */
public class Session implements Serializable {

    /**
     * 字段或域定义：<code>serialVersionUID</code>
     */
    private static final long serialVersionUID = 7916672242124268949L;

    /**
     * 主键
     */
    @Id
    private String id;
    /**
     * 会话ID
     */
    private String sessionId;

    /**
     * 会话开始时间
     */
    @JsonInclude(Include.NON_NULL)
    private Long beginTime;

    /**
     * 是否收费 0:免费;1:付费
     */
    @JsonInclude(Include.NON_NULL)
    @Deprecated
    private Integer payType;

    /**
     * 咨询是否收费 0:免费;1:付费 2.7咨询费需求添加
     */
    @JsonInclude(Include.NON_NULL)
    private Integer consultPayType;

    /**
     * 会话来源类型 0-普通免费会话，1-普通付费咨询会话，2-线上诊室找医生会话
     */
    private Integer consultSourceType;

    /**
     * 是否专家首次咨询
     */
    private Integer clinicFirst;

    /**
     * 会话结束时间
     */
    private Long endTime;

    public String getSessionId() {
        return sessionId;
    }

    public void setSessionId(String sessionId) {
        this.sessionId = sessionId;
    }

    public Long getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(Long beginTime) {
        this.beginTime = beginTime;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    /**
     * @return String 取得域 id 的方法。
     */
    public String getId() {
        return this.id;
    }

    /**
     * @param id 对域 id 的设置方法.
     */
    public void setId(String id) {
        this.id = id;
    }

    public Integer getConsultPayType() {
        return consultPayType;
    }

    public void setConsultPayType(Integer consultPayType) {
        this.consultPayType = consultPayType;
    }

    public Integer getConsultSourceType() {
        return consultSourceType;
    }

    public void setConsultSourceType(Integer consultSourceType) {
        this.consultSourceType = consultSourceType;
    }

    public Integer getClinicFirst() {
        return clinicFirst;
    }

    public void setClinicFirst(Integer clinicFirst) {
        this.clinicFirst = clinicFirst;
    }

    public Long getEndTime() {
        return endTime;
    }

    public void setEndTime(Long endTime) {
        this.endTime = endTime;
    }
}
